<h1>Excel reader test</h1>

<?php
function make_alpha_from_numbers($number)
{
	$numeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	if($number<strlen($numeric))
	{
		return $numeric[$number];
	}
	else
	{
		$dev_by = floor($number/strlen($numeric));
		return "" . make_alpha_from_numbers($dev_by-1) . make_alpha_from_numbers($number-($dev_by*strlen($numeric)));
	}
}

function datosTarifa($data, $tipoTarifa,$ini,$fin)
{
    $tarifa = trim($tipoTarifa);
    $tarifa_id = $tarifa;
    echo $tarifa;
    if ($tarifa[0] == '2')
    {
        if (substr_count($tarifa, 'DHA'))
        {
            $buscarValoresTarifa = array('Punta','Valle');
        }
        else
        {
            $buscarValoresTarifa = array('Llano');
        }
    }
    elseif ($tarifa[0] == '3')
    {
        $buscarValoresTarifa = array('Punta','Llano','Valle');
    }
    elseif ($tarifa[0] == '6')
    {
        $buscarValoresTarifa = array('P1','P2','P3','P4','P5','P6');
    }
    foreach($buscarValoresTarifa as $value){
        for($i = $ini; $i < $fin; $i ++)
        {
            for($j = 0; $j < 20; $j ++)
            {
                $valor = $data->val($i,make_alpha_from_numbers($j));
                if(substr_count($valor, $value))
                {
                    echo '</br>'.$value.':';
                    echo encontrarDerecha($i, $j, $data);
                }
            }
        }
    }
}

function encontrarDerecha($i, $j, $data)
{
    for($k=$j+1; $k < 22; $k++)
    {
        $valorNombre = $data->val($i,make_alpha_from_numbers($k));
        if($valorNombre != '')
        {
            return $valorNombre;
        }
    }
}

function getCompany($data)
{
    for($i=1; $i<85; $i++)
    {
        for($j=0; $j < 22; $j++)
        {
            $companyName = $data->val($i,make_alpha_from_numbers($j));
            if($companyName == 'endesa')
            {
                $compania_id = 'endesa';
                return 'endesa';
            }
        }
    }
}

//$todo = $sf_data->getRaw('data')->dump(true, true); //el dump true muestra las letras y números de las columnas/filas
//echo $todo;
//for($i=0;$i<5;$i++)
//{
//    echo "</br>prueba: ".$todo[$i];
//}
//INICIO NATURAL DEL PROGRAMA
//global $FINDOC = 85;
$entidad_financiera;
$sucursal;
$dc;
$cuenta;
$cups;
$numeroCuenta;
$companiaName = getCompany($data);
switch($companiaName)
{
    case 'endesa':
        echo contratoEndesa($data);
        break;
}

function datosClienteEndesa($data, $ini, $fin)
{
    //datos del cliente
    echo '</br>DATOS DEL CLIENTE </br>';
    for($i = $ini; $i < $fin; $i ++)
    {
        for($j = 0; $j < 20; $j ++)
        {
            $valor = $data->val($i,make_alpha_from_numbers($j));
            $valor2 = substr($valor,0 ,4);
    //        if($valor != '')
    //        {
    //            echo $valor . '</br>';
    //        }
    //
            if(substr_count($valor,'Nombre') && substr_count($valor,'Apellidos'))
            {
                echo 'Razon Social / Apellidos, Nombre: ';
                $titular = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'N:'))
            {
                echo 'Identificador: ';
                $cliente_id = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'primario'))
            {
                echo 'Telefono primario: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'secundario'))
            {
                echo 'Telefono secundario: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'movil'))
            {
                echo 'Telefono movil: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Actividad'))
            {
                echo 'Actividad Principal: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Direccion'))
            {
                echo 'Direccion: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Codigo Postal') && substr_count($valor,'Localidad'))
            {
                $valores = encontrarDerecha($i, $j, $data);
                $datos = explode(' ', $valores);
                echo 'Codigo Postal: ';
                $codPostal = $datos[0];
                echo $codPostal;
                echo '</br>';
                echo 'Localidad: ';
                $localidad = $datos[1];
                echo $localidad;
                echo '</br>';
            }
            if(substr_count($valor,'Provincia'))
            {
                echo 'Provincia: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
        }
    }
}

function datosContactoEndesa($data, $ini, $fin)
{
    //datos del cliente
    echo '</br>DATOS DE CONTACTO </br>';
    for($i = $ini; $i < $fin; $i ++)
    {
        for($j = 0; $j < 20; $j ++)
        {
            $valor = $data->val($i,make_alpha_from_numbers($j));
            $valor2 = substr($valor,0 ,4);
    //        if($valor != '')
    //        {
    //            echo $valor . '</br>';
    //        }
    //

            if(substr_count($valor,'Nombre') && substr_count($valor,'Apellidos'))
            {
                echo 'Razon Social / Apellidos, Nombre: ';
                $contacto = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Cargo') && substr_count($valor, 'ocupa'))
            {
                echo 'Cargo que ocupa: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'contacto'))
            {
                echo 'Telefono contacto: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'movil'))
            {
                echo 'Telefono movil: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Direccion'))
            {
                echo 'Direccion: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Escalera') && substr_count($valor,'Piso') && substr_count($valor,'Puerta'))
            {
                echo 'Escalera / Piso / Puerta: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Codigo Postal') && substr_count($valor,'Localidad'))
            {
                $valores = encontrarDerecha($i, $j, $data);
                $datos = explode(' ', $valores);
                echo 'Codigo Postal: ';
                $codPostal = $datos[0];
                echo $codPostal;
                echo '</br>';
                echo 'Localidad: ';
                $localidad = $datos[1];
                echo $localidad;
                echo '</br>';
            }
            if(substr_count($valor,'Provincia'))
            {
                echo 'Provincia: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'e-mail'))
            {
                echo 'e-mail: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
        }
    }
}

function datosSuministroEndesa($data, $ini, $fin)
{
    //datos del cliente
    echo '</br>DATOS DEL PUNTO DE SUMINISTRO </br>';
    for($i = $ini; $i < $fin; $i ++)
    {
        for($j = 0; $j < 20; $j ++)
        {
            $valor = $data->val($i,make_alpha_from_numbers($j));
            $valor2 = substr($valor,0 ,4);
    //        if($valor != '')
    //        {
    //            echo $valor . '</br>';
    //        }
    //
            if(substr_count($valor, 'Tipo') && substr_count($valor, 'via'))
            {
                echo 'Tipo de via: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Via'))
            {
                echo 'Via: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'N:'))
            {
                echo 'N: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Escalera'))
            {
                echo 'Escalera: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Piso'))
            {
                echo 'Piso: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Letra'))
            {
                echo 'Letra: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Direccion'))
            {
                echo 'Aclaración de la dirección: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'CNAE'))
            {
                echo 'CNAE: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Dispone Gas Natural'))
            {
                echo 'Dispone Gas Natural: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Localidad'))
            {
                echo 'Localidad: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Codigo') && substr_count($valor, 'Postal'))
            {
                echo 'Codigo Postal: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Provincia'))
            {
                echo 'Provincia: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Catastral'))
            {
                echo 'Ref. Catastral: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Empresa') && substr_count($valor, 'Distribuidora'))
            {
                echo 'Empresa Distribuidora: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Tension') && substr_count($valor, 'Suministro'))
            {
                echo 'Tension Suministro M: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'Tarifa'))
            {
                echo 'Tarifa: ';
                $tipoTarifa = encontrarDerecha($i, $j, $data);
                echo datosTarifa($data, $tipoTarifa,$ini,$fin);
                echo '</br>';
            }if(substr_count($valor, 'Producto'))
            {
                echo 'Producto: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }if(substr_count($valor, 'Alquiler') && substr_count($valor, 'Equipo') && substr_count($valor, 'Medida'))
            {
                echo 'Alquiler Equipo Medida: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }if(substr_count($valor, 'Multisuministro'))
            {
                echo 'Multisuministro: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor, 'CUPS'))
            {
                $opt = 0;
                echo 'CUPS: ';
                $values = explode(" ",$valor);
                foreach($values as $value)
                {
                    if(strlen($value) == 22)
                    {
                        $opt = 1;
                        $cups = $value;
                        echo $value;
                    }
                }
                if($opt == 0)
                {
                    echo encontrarDerecha($i, $j, $data);
                }
                echo '</br>';
            }
        }
    }
}

function datosPagoEndesa($data, $ini, $fin)
{
    //datos del cliente
    echo '</br>DATOS DE PAGO </br>';
    for($i = $ini; $i < $fin; $i ++)
    {
        for($j = 0; $j < 20; $j ++)
        {
            $valor = $data->val($i,make_alpha_from_numbers($j));
            $valor2 = substr($valor,0 ,4);
    //        if($valor != '')
    //        {
    //            echo $valor . '</br>';
    //        }
    //
            if(substr_count($valor,'Nombre') && substr_count($valor,'Apellidos'))
            {
                echo 'Razon Social / Apellidos, Nombre: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'NIF'))
            {
                echo 'NIF: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'primario'))
            {
                echo 'Telefono primario: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'secundario'))
            {
                echo 'Telefono secundario: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Telefono') && substr_count($valor,'movil'))
            {
                echo 'Telefono movil: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Actividad'))
            {
                echo 'Actividad Principal: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Direccion'))
            {
                echo 'Direccion: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Codigo Postal') && substr_count($valor,'Localidad'))
            {
                $valores = encontrarDerecha($i, $j, $data);
                $datos = explode(' ', $valores);
                echo 'Codigo Postal: ';
                $codPostal = $datos[0];
                echo $codPostal;
                echo '</br>';
                echo 'Localidad: ';
                $localidad = $datos[1];
                echo $localidad;
                echo '</br>';
            }
            if(substr_count($valor,'Provincia'))
            {
                echo 'Provincia: ';
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Entidad Financiera'))
            {
                echo 'Entidad Financiera: ';
                $entidad_financiera = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Sucursal'))
            {
                echo 'Sucursal: ';
                $sucursal = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'DC:'))
            {
                echo 'DC: ';
                $dc = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
            if(substr_count($valor,'Cuenta'))
            {
                echo 'Cuenta: ';
                $cuenta = encontrarDerecha($i, $j, $data);
                echo encontrarDerecha($i, $j, $data);
                echo '</br>';
            }
        }
    }
}

function buscarTitulosEndesa($data)
{
//    $arrayTitulos['DatosCliente'] = 1;
//    $arrayTitulos['DatosContacto'] = 2;
//    $arrayTitulos['DatosSuministro'] = 3;
//    $arrayTitulos['DatosPago'] = 4;
    $k=0;
    for($i=1; $i<85; $i++)
    {
        for($j=0; $j < 22; $j++)
        {
            $titulosEndesa = $data->val($i,make_alpha_from_numbers($j));
            if(substr_count($titulosEndesa, 'DATOS') && substr_count($titulosEndesa, 'CLIENTE'))
            {
                $arrayTitulos[$k] = 'DatosCliente';
                $arrayPosiciones[$k] = $i;
                $k++;
            }
            if(substr_count($titulosEndesa, 'DATOS') && substr_count($titulosEndesa, 'CONTACTO'))
            {
                $arrayTitulos[$k] = 'DatosContacto';
                $arrayPosiciones[$k] = $i;
                $k++;
            }
            if(substr_count($titulosEndesa, 'DATOS') && substr_count($titulosEndesa, 'PUNTO') && substr_count($titulosEndesa, 'SUMINISTRO'))
            {
                $arrayTitulos[$k] = 'DatosSuministro';
                $arrayPosiciones[$k] = $i;
                $k++;
            }
            if(substr_count($titulosEndesa, 'DATOS') && substr_count($titulosEndesa, 'PAGO'))
            {
                $arrayTitulos[$k] = 'DatosPago';
                $arrayPosiciones[$k] = $i;
                $k++;
            }
        }
    }
    $arrayArrays[0]=$arrayTitulos;
    $arrayArrays[1]=$arrayPosiciones;
    return $arrayArrays;
}

function contratoEndesa($data)
{
    $arrayArrays = buscarTitulosEndesa($data);
    $arrayTitulos = $arrayArrays[0];
    $arrayPosiciones = $arrayArrays[1];
    asort($arrayPosiciones); //ordeno el array por posición de los títulos
    
    foreach($arrayPosiciones as $key => $value)
    {
        $inicio = $arrayPosiciones[$key];
        if($key > 2)
        {
            $siguiente = 85;//Final del documento
        }
        else
        {
            $siguiente = $arrayPosiciones[$key + 1];
        }

        switch($arrayTitulos[$key])
        {
            case 'DatosCliente':
                echo datosClienteEndesa($data,$inicio,$siguiente);
                break;
            case 'DatosContacto':
                echo datosContactoEndesa($data,$inicio,$siguiente);
                break;
            case 'DatosSuministro':
                echo datosSuministroEndesa($data,$inicio,$siguiente);
                break;
            case 'DatosPago':
                echo datosPagoEndesa($data,$inicio,$siguiente);
                break;
        }
//        echo $arrayTitulos[$key].' ';
//        echo $key.' '.$arrayPosiciones[$key].'</br>';
    }
}
$numeroCuenta = $entidad_financiera . $sucursal . $dc . $cuenta;
echo $numCuenta;
echo $cups;
?>
